מדעי המחשב. פרק ראשון :Java. blog.csit.org.il מדעי המחשב שאלון: עיצוב תכנה 1 מועד ב' תשע"ו פתרון בחינת הבגרות שאלה 1 פעולות עזר:

Σχετικά έγγραφα
מבני נתונים מדעי המחשב שאלון: מועד ב' תשע"ו מדעי המחשב פתרון בחינת הבגרות. Java שאלה 1. blog.csit.org.

מדעי המחשב ב' פתרון בחינת הבגרות. One n 4.0. One n T 4 3 T 8 4 T 16 5 T 32 6 F

1 שאלו : Together double x 5.0 int from 2 int to 6 One first Two second One n 5.0 Queue<One>q One n 4.0 One n 8.0 One n 16.

1 שאלון: תש"ע

חורף תש''ע פתרון בחינה סופית מועד א'

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

ניתן לקבל אוטומט עבור השפה המבוקשת ע "י שימוששאלה 6 בטכניקתשפה המכפלה שנייה כדי לבנות אוטומט לשפת החיתוך של שתי השפות:

1 שאלון: תשס"ט { int listsize = size(list); int n = listsize / 3; if (listsize == 0 listsize % 3!

{ : Halts on every input}

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

חלק 1 כלומר, פונקציה. האוטומט. ) אותיות, אלפבית, א"ב (.

2 שאלות )בחירה מ - 4( סה"כ 25 נקודות לכל שאלה 22 נקודות

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

Logic and Set Theory for Comp. Sci.

מודלים חישוביים פתרון תרגיל 5

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

gcd 24,15 = 3 3 =

תרגול פעולות מומצאות 3

תרגיל 13 משפטי רול ולגראנז הערות

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

סדרות - תרגילים הכנה לבגרות 5 יח"ל

3-9 - a < x < a, a < x < a

שאלה 1 V AB פתרון AB 30 R3 20 R

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

מתמטיקה בדידה תרגול מס' 13

ל הזכויות שמורות לדפנה וסטרייך

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

תרגיל 7 פונקציות טריגונומטריות הערות

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

אלגברה ליניארית 1 א' פתרון 2

גבול ורציפות של פונקציה סקלרית שאלות נוספות

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

מתמטיקה בדידה תרגול מס' 5

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

אוטומטים- תרגול 8 שפות חסרות הקשר

אלגברה ליניארית (1) - תרגיל 6

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

הגדרה: מצבים k -בני-הפרדה

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

בעיות חשיבות: :(State transition system) STS מושגים: רדוקציה: f אינה חשיבה g אינה חשיבה; בבעיות הכרעה: f לא כריעה g לא כריעה.

תרגול מס' 6 פתרון מערכת משוואות ליניארית

מודלים חישוביים תרגולמס 7

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

מודלים חישוביים כריעות R זוהי מחלקת השפות הכריעות. מחלקה זו סגורה תחת פעולת המשלים. רדוקציה בעיית ההכרעה רדוקציית מיפוי.

TECHNION Israel Institute of Technology, Faculty of Mechanical Engineering מבוא לבקרה (034040) גליון תרגילי בית מס 5 ציור 1: דיאגרמת הבלוקים

קובץ שאלות ופתרונות של שאלות ממבחנים מנושאים שונים

מבחן במודלים חישוביים + פתרון מוצע

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

אוטומטים ושפות פורמליות תרגולים

הוראות לנבחן בפרק זה ארבע שאלות, פרק ראשון ומהן יש לענות על שתיים. לפי ההוראות בקבוצת השאלות במסלול זה.

Regular Expressions (RE)

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

מודלים חישוביים, חישוביות וסיבוכיות (חישוביות) 67521

מתמטיקה בדידה תרגול מס' 12

שפות פורמאליות אוטומטים

קיום ויחידות פתרונות למשוואות דיפרנציאליות

מודלים חישוביים תרגולמס 5

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

אוסף שאלות מס. 3 פתרונות

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

אלגברה לינארית מטריצות מטריצות הפיכות

פתרון תרגיל דוגמא מרחב המדגם הוא כל הקומבינציות של 20 חודשי הולדת. לכל ילד 12 אפשרויות,לכן. לכן -

תרגול 8: מטלאב לולאות

שפות פורמאליות אוטומטים

co ארזים 3 במרץ 2016

הרצאה 3 קומבינטוריקה נוסחת ניוטון משפט מולטינומי. + t עבור ( ) + t

סיכום- בעיות מינימוםמקסימום - שאלון 806

מבני נתונים ואלגוריתמים תרגול #11

(ספר לימוד שאלון )

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

הרצאה נושאי הקורס 0.2 א"ב ומילים 0.3 שפות 1. מהו חישוב? 2. מהו מחשב? 3. מהו אלגוריתם? 4. מה ניתן לחשב? מה לא ניתן?

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות

אלגברה ליניארית 1 א' פתרון 7

אוטומטים- תרגול 10: מכונות טיורינג.

x a x n D f (iii) x n a ,Cauchy

Συλλογές, Στοίβες και Ουρές

Transcript:

1 פתרון בחינת הבגרות פרק ראשון :Java שאלה 1 פעולות עזר:

6

3 C#: שאלה 1 פעולות עזר:

4

5 a.length = 5 0 1 2 3 4 a 2 4 7 12 18 שאלה 2 א. (a,11) sod ערך k i i<4 j j<5 a[i] a[j] a[i]+a[j] == k מוחזר 11 0 T 1 T 2 4 F 2 T 7 F 3 T 12 F 4 T 18 F 5 F אמת 1 T 2 T 4 7 T ב. (a,10) sod ערך k i i<4 j j<5 a[i] a[j] a[i]+a[j] == k מוחזר 11 0 T 1 T 2 4 F 2 T 7 F 3 T 12 F 4 T 18 F 5 F 1 T 2 T 4 7 F 3 T 12 F 4 T 18 F 5 F 2 T 3 T 7 12 F 4 T 18 F 5 F 3 T 4 T 12 18 F 5 F שקר 4 F

2 ג. ד. ה. הפעולה מחזירה "אמת" אם קיימים שני איברים במערך שסכומם k, ו- "שקר" אחרת. סיבוכיות הפעולה sod היא ) 2.O(n בהנחה שיש במערך n איברים: הלולאה החיצונית רצה על כל המערך - סה"כ n צעדים ובתוכה לולאה פנימית הרצה בכל פעם על איבר אחד פחות: 2 1 n 1 ( n 1) n n ( n 1) ( n 2) ( n 3)... 2 1 Sn O( n 2 2 2 ) what (a, k) a.length = 5 0 1 2 3 4 a 2 4 7 12 18 k left right left<right I a[left] II a[right] I+II == k I+II < k 11 0 4 T 2 18 F F 3 T 12 F F 2 T 7 F T ערך מוחזר אמת 1 T 4 T.O(n) what ו. סיבוכיות הפעולה היא הפעולה עוברת לכל היותר מעבר אחד על כל נתוני המערך, עד שמוצאת או לא מוצאת שני איברים שסכומם k. O(n 2 ) O(n) ז. סיבוכיות הפעולה - sod ריבועית סיבוכיות הפעולה - what ליניארית ולכן, what יעילה יותר. )1( )6( ח. sod תשיג את מטרתה, כי היא בודקת בכל פעם איבר אחר מול כולם. what לא תשיג את המטרתה, כי היא אינה בודקת את כל האפשרויות. למשל: עבור המערך הבא תחזיר sod "אמת", ואילו what תחזיר "שקר". 0 1 2 3 4 a 18 2 4 7 12

7 Java שאלה 3 ב. סיבוכיות הפעולה: הפעולה עוברת על כל אחד מ- n הצמתים בעץ. לפי אפשרות - I ספירת n האיברים במחסנית, סיבוכיות הפעולה ) 2 O(n לפי אפשרות - II ספירה של עד 3 איברים במחסנית (1)O ולכן סיבוכיות הפעולה O(n)

8

9 --- פעולה המחזירה מחסנית של סכום עד 3 איברים שבצמתי העץ ---// public static Stack<int> TreeSumStack (BinTreeNode<Stack<int>> t) Stack<int> s = new Stack<int>(); Sum (t, s); return s; C# שאלה 3 --- דרך //--- 1 public static void TreeSumStack(BinTreeNode<Stack<int>> t, Stack<int> s) if (t!= null) Sum(t.GetLeft(), s); int n = 3, sum = 0; Stack<int> s2 = t.getinfo(); while (! s2.isempty() && n > 0) sum = sum + s2.pop(); n -- ; Sum(t.GetRight(), s); ב. סיבוכיות הפעולה: הפעולה עוברת על כל אחד מ- n הצמתים בעץ. לפי אפשרות - I ספירת n האיברים במחסנית, סיבוכיות הפעולה ) 2 O(n לפי אפשרות - II ספירה של עד 3 איברים במחסנית (1)O ולכן סיבוכיות הפעולה O(n) --- דרך //--- 2 public static void TreeSumStack(BinTreeNode<Stack<int>> t, Stack<int> s) if (t!= null) Sum(t.GetLeft(), s); int sum = SumStack (t.getinfo(); s.push(sum); Sum(t.GetRight(), s); --- פעולה המחזירה את סכום עד 3 האיברים שבראש המחסנית ---// public static int SumStack(Stack<int> s) int sum = 0; for (int i = 0 ; I < 3 ; i++) if (! s.isempty()) sum += s.pop(); return sum;

11 שאלה א : Java 4 - ג. כותרות הפעולות משולב עם סעיפים ב' )מימוש פעולה בונה( ו- ג' )מימוש הפעולה )sum

11 ד. דרך כתיבה נוספת לניהול השלב השני של המשחק: boolean gameover = false; while (! gameover) if (! deck.move()) gameover = true;

16 שאלה א : C# 4 - ג. כותרות הפעולות משולב עם סעיפים ב' )מימוש פעולה בונה( ו- ג' )מימוש הפעולה )sum

13 ד. דרך כתיבה נוספת לניהול השלב השני של המשחק: bool gameover = false; while (! gameover) if (! deck.move()) gameover = true;

14 MOV BX, 0 XOR AH, AH MOV DX, 1 MOV CX, AX DEC CX JZ A3 A1: ADD BX, DX ADD DX, 2 LOOP A1 A2: ADD BX, DX MOV AX, BX A3: NOP AH 00 AX AL 11 37H 91H 0FFH 00 BH 11 00 00 00 00 שאלה פרק שלישי מערכות מחשב ואסמבלר הפתרון לפרק זה נכתב ע"י: רונית )מרציאנו( גל-אור BX BL 11 11 16 03 04 CH 00 00 00 00 00 CX CL 04 03 02 11 00 CF + OF + SF + + 5 א. ב. השלמת קווים לחישוב מספר טבעי בריבוע ZF + + MOV CX,4 XOR AX,AX LEA BX,T AGAIN: ADD AL,[BX] INC BX LOOP AGAIN AGAIN: ADD AL,[BX] INC BX LOOP AGAIN AGAIN: ADD AL,[BX] INC BX LOOP AGAIN AGAIN: ADD AL,[BX] INC BX LOOP AGAIN

15 MOV CX,4 \ XOR AX,AX LEA BX,T AGAIN: MOV DL,[BX] XOR DH,DH ADD AX,DX INC BX LOOP AGAIN עדכון התוכנית כך שתחשב סכום ערכי המערך:

12 שאלה 6 ARR DB 5 DUP(?) א. נתונה ההגדרה הבאה: עקוב בעזרת טבלת מעקב אחר ביצוע של כל אחד מהקטעים וקבע אם הוא מבצע את הנדרש או לא. i. לא מבצע את הנדרש, מאפס רק 4 תאים ראשונים MOV SI,0 MOV CX,4 A1: MOV ARR[SI],0 ARR 00 00H 11 01H 11 02H 11 03H? 04H INC SI LOOP A1 CX 00H 04H SI 0000H 0001H 0002H 0003H 0004H.ii מבצע את הנדרש, MOV CX,5 LEA BX,ARR MOV AL,0 A1: MOV [BX],AL INC BX LOOP A1 CX BX AX AH AL 00H 05H 0000H 00 00H 04H 0001H 00H 03H 0002H 00H 02H 0003H 00H 01H 0004H 00H 00H 0005H

ב. 17 לא מבצע את הנדרש, מאפס רק 4 תאים אחרונים, לא מאפס את התא הראשון? 00 00 00 00 ARR 00H 01H 02H 03H 04H iii MOV BX,5 DEC BX A1: MOV ARR[BX],0 DEC BX JNZ A1 BX 00H 05H 00H 04H 00H 03H 00H 02H 00H 01H 00H 00H iv מבצע את הנדרש, MOV DI,0 A1: MOV ARR[DI],0 INC DI DI 0000H CMP DI,5 JC A1 0001H 0002H 0003H 0004H 0005H. טבלת מעקב אחר ביצוע קטע התוכנית 6 AX BX ZF SF CF AH AL BH BL C8H 3BH MOV AX, C83BH A8H 9CH + + MOV BX, A89CH 90H 76H SHL AX, 1 77H OR AL, 33H 63H NOT BL 38H DAH A8H 63H + ADD AX, BX

18 שאלה 7 במערך NUMBERS בגודל 111 בתים מופיעים הערכים 1 עד,0FFH והמערך APP בגודל 652 בתים החל מכתובת 2500Hמכיל אפסים. כתוב קטע באמסבלי שיעבור פעם אחת על אברי המערך NUMBERS וירשום במקום ה i במערך APP את מספר הפעמים שהמספר i הופיע במערך. NUMBERS MOV CX,100 XOR SI,SI XOR BH,BH MORE: MOV BL,[SI] INC APP[BX] INC SI LOOP MORE שאלה 8 יש לכתוב קטע תוכנית באסמבלי, שיציב באוגר שבאוגר.AX BL את מספר הפעמים שהרצף 1111 מופיע במספר הבינארי MOV CX,12 ; LOOP MOV BL,0 ; COUNTER 1011 AGAIN: MOV DX,AX AND DX,000BH CMP DX,000BH JNZ CONT INC BL CONT: SHR AX,1 LOOP AGAIN

19 מבוא לחקר ביצועים שאלה 9 שאלה 11 שאלה 11 שאלה 12

61 מודלים חישוביים הפתרון לפרק זה נכתב ע"י רחל לודמר. שאלה 13 c / / push TS S c / / push A A a / A / pop A a / A / pop A a / S / pop S T c / / B push BS a / B T / a / B T / b / B / pop B b / T / pop T b / B / pop B b / T / pop T

61 שאלה 14 א. ב. המילה הקצרה ביותר היא 000$$. האוטומט שמקבל את השפה L: 1 1 1 $ $ $ 1 1 1 1 שאלה 15 n k L 0 1 2 n k 0 א. הוכחה שהשפה אינה רגולרית. נוכיח שהשפה L היא אי רגולרית, בדרך השלילה. נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי A הבונה אותה. תהי הקבוצה האינסופית הבאה: התחלות של מילים בשפה L i j.w מתוך הקבוצה w1 0, w2 0 i j, נבחר שתי התחלות שונות, j 0 מאחר והאוטומט הוא סופי ניתן להניח כי שתי המילים מגיעות למצב משותף q t באוטומט. A משם נשרשר כל מילה עם הרצף. 1 i 2 שתי המילים מגיעות למצב משתף המילה יוצא גם ש- 0 i 1 עבור i>j שייכת לשפה, ולכן j 2. q r q r מצב מקבל. 0 i 1 גם בשפה, וזה בניגוד לכללי השפה. i 2,... מאחר ויש להם מסלול משותף, לכן הנחתנו ששתי המילים מגיעות למצב משתף אינה נכונה, אלא כל מילה מגיעה למצב אחר. ומאחר והקבוצה W היא אינסופית יוצא שכל מילה מגיע למצב אחר. ומכאן יש אינסוף מצבים ב-, A בניגוד להגדרת אוטומט סופי. לכן ההנחה שקיים אוטומט סופי הבונה את השפה L אינה נכונה, והשפה אינה רגולרית. W 0, 0 2 3 n, 0,..., 0 ואילו השפה L 1,(n>0) השפה. L 1 L החיתוך הוא השפה הריקה. השפה L חייבת להתחיל באות 0 את הספרה 1. ב. אינה מכילה כלל

66 השלמת מכונת טיורינג עבור הפונקציה min(m,n) f(m,n)= כאשר m,n>0, כתובים בשפה האונרית וסימן # מפריד בניהם. תוצאת המכונה תיכתב בין שני $. ימין, /a 1 ימין, /a a ימין, b /b ימין, 1 / 1 א שמאל, /b 1 ימין, /# # q0 q1 q2 q3 שאלה 16 א. שמאל, /b b שמאל, # / # שמאל, 1 1 / ב ימין /$, # ג שמאל, $ / Δ ימין 1, / b q4 q5 q6 ימין /$, Δ 1/$ ימין, /$ # שמאל 1, / b ב. תהליך החישוב של המכונה בעבור הקלט 1=m,1=n 1 # 1 Δ q0 a # 1 Δ q1 a # 1 Δ q2 a # b Δ q3 a # b Δ q3 a # b Δ q0 a $ b Δ q4 a $ 1 Δ Δ q4 a $ 1 $ Δ q5

63 שאלה תכנות מונחה עצמים Java 17 public class Program public static void main(string[] args) TransportationCompany company1 = new TransportationCompany(); א. Vehicle boat = new Boat ("sea ", 50); company1.addvehicle (boat); company1.addvehicle (new Train (150, 6)); אפשר כך )הוספת סירה( ואפשר גם כך )הוספת רכבת( company1.display(); public String tostring() return this.type + "\t" + this.way + "\t max speed : " + this.maxspeed; tostring() מתאימה: public String tostring() return "Train: \t\t" + super.tostring() + "\t num of carriages: " + this.numofcarriages; ב. נוסיף בכל מחלקה פעולה במחלקה :Vehicle במחלקה :Train public String tostring() return "Airplane: \t" + super.tostring() + "\t max height: " + this.maxheight; במחלקה :Airplane במחלקה :Boat )למעשה אפשר לוותר על הפעולה במחלקה זו כי אין לה תכונות נוספות מעבר לאלו שב-.Vehicle הפעולה הוספה למחלקה כדי שגם כלי השיט יציג את שם המחלקה שלו) public String tostring() return "Boat: \t\t" + super.tostring();

64 ג. הוספת קרונות רכבת הינה באחריותה של הרכבת. הוספת קרונות לכל הרכבות שבצי כלי הרכב של החברה הינו באחריותה של החברה. רק במחלקה זו יש גישה ישירה למערך כלי הרכב, ולכן נוסיף את הפעולה במחלקה : TransportationCompany --- הוספת n שבחברה הרכבות לכל קרונות ---// public void addcarriages (int n) for (int i = 0 ; i < this.counter ; i++) if (this.vehicles[i] instanceof Train) ((Train)this.vehicles[i]).incNumOfCariagges(n);

65 שאלה 18 הבדיקה אינה חובה. אם ערך התא null הפעולה instanceof תחזיר שקר

62 תרגיל 19: aseq n i i < 4 א. פלט 11 5 elements: 2, 5, 8, 11, 14 The sequence כן 0 ASeq כן 1 first 2 diff 3 2 3 4 כן כן לא public class Sequence protected int first; public Sequence(int first) this.first = first; ב. public int thenelement(int n) return this.first; public void displaynelements(int n) System.out.print("The sequence elements"); for (int i = 1 ; i < n ; i++) System.out.print(this.first + ","); System.out.println(this.first); האיבר האחרון מודפס ללא סימן פסיק אחריו השינויים במחלקה :ASeq public class ASeq extends Sequence // המחלקה מרחיבה את Sequence private int difference; // מוגדר במחלקת העל first public ASeq(int first, int difference) אתחול first ב- super(first); // super this.difference = difference; : // כל שאר המחלקה ללא שינוי : // כל פעולה מגדירה מחדש את הפעולות של מחלקת העל כך שיתאים לסדרה הנוכחית

67 ג. יש לממש את הפעולה סכום-הסדרה במחלקה.Sequance המחלקות היורשות יכולות להשתמש בפעולה ללא צורך בשינויים, כל אחת תממש את הפעולה לפי הפעולה thenelement המוגדרת בה. public int sumseq(int n) int sum = 0; for (int i = 1 ; i <= n ; i++) sum += thenelement(i); return sum; //------ comparing sumsequences ------- public static char check (int n, ASeq sqa, GSeq sqg) int suma = sqa.sumseq(n); int sumg = sqg.sumseq(n); ד. if (suma > sumg) return 'A'; if (suma < sumg) return 'G'; return 'E';

68 שאלה א. 21 כן. הינן חלק מהפעלות של,WhatIn1 WhatClass ולכן כל הפעולות של WhatClass יורשת מ- WhatIn1 ובכך היא עונה על התחייבותה לממש את הפעולה בממשק. כלומר - WhatIn1 מתפקדת כ- WhatOp ב. הפעולה לא תקינה. המחלקה יורשת מ- WhatClass ולכן עליה לזמן את הפעולה הבונה של מחלקת העל. התיקון : public WhatIn1(int number, int num) super(number); this.num = num; ג. הפעולה לא תקינה. הרשאת הגישה לתכונה number היא,private ולכן היא מוסתרת מהמחלקה. התיקון - זימון הפעולה :getnumber() public int calculate2() return (int)((this.getnumber() +this.num)/2); ד. )1( אי אפשר להסתמך על הפעולה בונה ברירת מחדל. מרגע שנוצרו פעולות בונות באחת ממחלקות-העל של,WhatIn2 התבטלה האופציה של פעולה בונה ברירת מחדל. )אם נסיר את הפעולות הבונות של המחלקות WhatClass ו- WhatIn1 יופעל בנאי המחדל(. System.out.println(obj.calculate3(1000, 100, 10)); )6( p1 p2 p3 calculate3(p1,p2,p3) 1000 100 10 21,000 + 3* 10*10*10 24,000 calculate3(p1,p2) 1000 + 2*100*100 21,000 64,111 הפלט: calculate3(p1) 1*1000 1000 כל הפעולות מוכרות במחלקה WhatIn2 שיורשת מכל המחלקות האחרות.

69 תכנות מונחה עצמים #C הפתרון לפרק זה נכתב ע"י... שאלה 21 שאלה 22 נכתב ע"י זיוה קונצמן public virtual bool IsLike(Object obj) return obj is AA && ((AA)obj).GetSt().Equals(this.GetSt()); public override bool IsLike(object obj) return obj is BB && ((BB)obj).GetNum() == this.getnum(); במחלקה :AA במחלקה : BB א. ב. ג. ד. ה. קטע התוכנית נכון. מתבצעת המרה אוטומטית כלפי מעלה של משתנה מטיפוס הבן להפניה מטיפוס האב. הבן הוא גם טיפוס האב לכן אין בעיה. st = excellent num = 1 הפלט יהיה: קטע התוכנית שגוי. לא יכול להמיר כלפי מטה הפניה מסוג האב להיות הפניה מסוג הבן, הוא לא נוצר כ- BB אלא כ-,AA ואינו יכול לעבור המרה למשהו שהוא לא. השגיאה היא שגיאת קומפילציה. public static string LongString(Object[] a) string st = ""; for (int i = 0; i < st.length; i++) if (a[i] is AA &&! (a[i] is BB)) st += ((AA)a[i]).GetSt(); else if (a[i] is BB) for (int j = 1 ; j < ((BB)a[i]).GetNum() ; j++) st += ((BB)a[i]).GetSt(); return st;

31 תרגיל 23: א. aseq: ASeq Aseq first=2 difference=3 public class Sequence protected int first; public Sequence(int first) this.first = first; public virtual int TheNElement(int n) return this.first; public virtual void DisplayNElement(int n) Console.Write("The sequence elements"); for (int i = 0; i < n; i++) Console.Write(this.first + ","); public class ASeq:Sequence private int difference; public ASeq(int first, int difference):base(first) this.difference = difference; public override int TheNElement(int n) return this.first + (n - 1) * this.difference; public override void DisplayNElement(int n) Console.Write("The sequence elements"); for (int i = 0 ; i < n - 1 ; i++) Console.Write(this.TheNElement(i + 1) + ","); Console.WriteLine(this.TheNElement(n));.1.6 ב.

31 public int SumSeq(int n) int sum = 0; for (int i = 1; i <= n; i++) sum += TheNElement(i); return sum; ג. אין צורך לעשות כל שינוי. הפעולה תכתב במחלקת Sequence כך: בשתי המחלקות היורשות אין צורך בכתיבה מחודשת, כל אחת תממש את חישוב האיבר לפי הפעולה הכתובה בה, מכיוון שכאן יופעל מנגנון הדריסה. public static char Bigger(int n, ASeq a, Gseq g) int s1 = a.sumseq(n); int s2 = g.sumseq(n); if (s1 > s2) return 'A'; if (s2 > s1) return 'G'; return 'E'; ד.

36 שאלה 24